package com.web.quartz.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.web.common.basic.quartz.entity.QuartzJobDetail;
import com.web.common.basic.quartz.entity.QuartzJobDetailEntity;
import com.web.common.basic.quartz.entity.QuartzJobParam;

/**
 * <p>
 * 定时任务名称 Mapper 接口
 * </p>
 *
 * @author zhouhui
 * @since 2023-08-08
 */
@Mapper
public interface QuartzJobMapper {

	/**
	 * 获取定时任务列表
	 * @param page分页信息
	 * @param condition 查询条件
	 * @return IPage<QuartzJobDetail> 分页信息
	 *
	 * @author zhouhui
	 * @since 2023.11.10 
	 */
	IPage<QuartzJobDetail> getQuartzJobList(IPage<QuartzJobDetail> page, @Param("condition") QuartzJobDetailEntity condition);
	
	/**
	 * 获取定时任务详细信息
	 * @param job 定时任务
	 * @return QuartzJobDetail 定时任务详细信息
	 *
	 * @author zhouhui
	 * @since 2023.11.19
	 */
	QuartzJobDetail getJobDetail(@Param("job") QuartzJobParam job);
	
	/**
	 * 获取Cron表达式的信息
	 * @param job 定时任务信息
	 * @return QuartzJobParam 定时任务详细信息
	 *
	 * @author zhouhui
	 * @since 2023.11.19
	 */
	QuartzJobParam getCronTrigger(@Param("job") QuartzJobParam job);
	
	/**
	 * 获取固定频率的信息
	 * @param job 定时任务信息
	 * @return QuartzJobParam 定时任务详细信息
	 *
	 * @author zhouhui
	 * @since 2023.11.19
	 */
	QuartzJobParam getSimpropTrigger(@Param("job") QuartzJobParam job);
}
